package com.cskaoyan._09static._05usecase;

/**
 * @description:
 * @author: 景天
 * @date: 2023/2/6 15:00
 **/
/*
创建一个学生类,  有2个属性: 姓名String name , 学号int id
统计外部创建Student类对象的个数 假设给Student类的对象自动编号
这个编号第一次创建对象是10001 随后每创建一个新对象就+1
 */
public class Demo2 {
    public static void main(String[] args) {
        // 创建学生对象
        //Student s1 = new Student("zs", 10001);
        //Student.count++;
        //
        //Student s2 = new Student("zs", 10002);
        //Student.count++;


        Student s1 = new Student("zs");
        Student s2 = new Student("ls");
        Student s3 = new Student("ww");

        //Student s4 = new Student();

        // 输出
        System.out.println("s1.id = " + s1.id);
        System.out.println("s2.id = " + s2.id);
        System.out.println("s3.id = " + s3.id);
        //System.out.println("s4.id = " + s4.id);

        System.out.println("创建了"+Student.count+"个学生对象");

    }
}

class Student{
    String name;
    int id;
    // 定义一个静态的成员变量,统计创建了多个个学生
    static int count = 0;

    // 定义一个静态成员变量,初始化学号
    static int initNumber = 10001;

    //public Student(String name, int id) {
    //    this.name = name;
    //    this.id = id;
    //}


    // 单参构造方法
    public Student(String name) {
        this.name = name;
        // 学生数量+1
        Student.count++;
        // 把初始学号赋值给自己定义的普通成员变量id
        this.id = Student.initNumber;
        // 为了自动编号
        Student.initNumber++;
    }

    public Student() {
    }
}